LanguageExt.Core

LanguageExt.Core TypeClasses TriFunctor

Contents

interface TriFunctor <FABC, FR, A, B, C, R> Source #

Functor type-class

interface TriFunctor <FABC, FTUV, A, B, C, T, U, V> Source #

Functor type-class

class TypeClass Source #

Methods

method FR trimap <TriFunctorABC, FABC, FR, A, B, C, R> (FABC ma, Func<A, R> fa, Func<B, R> fb, Func<B, R> fc) Source #

where TriFunctorABC : TriFunctor<FABC, FR, A, B, C, R>

Projection from one tri-functor to another. This operation should map only one of the items (A, B, or C). The type R should match A, B, or C depending on which item is being mapped.

Parameters

type FABC

Source functor value type

type FR

Target functor value type

type A

Source item 1 value type

type B

Source item 2 value type

type C

Source item 3 value type

type R

Target item value type

param ma

Functor value to map from

param fa

Projection function

param fb

Projection function

returns

Mapped functor

method FTUV trimap <TriFunctorABC, FABC, FTUV, A, B, C, T, U, V> (FABC ma, Func<A, T> fa, Func<B, U> fb, Func<C, V> fc) Source #

where TriFunctorABC : TriFunctor<FABC, FTUV, A, B, C, T, U, V>

Projection from one value to another. All three elements of the tri-functor can will be mapped to a new result value.

Parameters

type FABC

Source functor value type

type FTUV

Target functor value type

type A

Source item 1 value type

type B

Source item 2 value type

type C

Source item 3 value type

type T

Target item 1 value type

type U

Target item 2 value type

type V

Target item 3 value type

param ma

Functor value to map from

param fa

Projection function

param fb

Projection function

param fc

Projection function

returns

Mapped functor